import request from '@/utils/request'
import type { ApiResponse, ModelConfig } from './text2img'

/**
 * 获取所有启用的模型配置
 * @returns 模型配置列表
 */
export function getAllModels() {
  return request({
    url: '/api/model-config/list',
    method: 'get'
  }) as Promise<ApiResponse<ModelConfig[]>>
}

/**
 * 获取Text2Img模型配置
 * @returns Text2Img模型配置列表
 */
export function getText2ImgModels() {
  return request({
    url: '/api/model-config/text2img',
    method: 'get'
  }) as Promise<ApiResponse<any[]>>
}

/**
 * 获取Img2Img模型配置
 * @returns Img2Img模型配置列表
 */
export function getImg2ImgModels() {
  return request({
    url: '/api/model-config/img2img',
    method: 'get'
  }) as Promise<ApiResponse<any[]>>
}

/**
 * 根据模型名称获取模型配置
 * @param modelName 模型名称
 * @returns 模型配置
 */
export function getModelByName(modelName: string) {
  return request({
    url: `/api/model-config/${modelName}`,
    method: 'get'
  }) as Promise<ApiResponse<ModelConfig>>
}

/**
 * 获取默认模型配置
 * @returns 默认模型配置
 */
export function getDefaultModel() {
  return request({
    url: '/api/model-config/default',
    method: 'get'
  }) as Promise<ApiResponse<ModelConfig>>
}

/**
 * 检查模型是否存在
 * @param modelName 模型名称
 * @returns 是否存在
 */
export function checkModelExists(modelName: string) {
  return request({
    url: `/api/model-config/exists/${modelName}`,
    method: 'get'
  }) as Promise<ApiResponse<boolean>>
} 